<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // // 值类型
        // let a = 100;
        // let b = a;
        // a = 200;
        // console.log(b); // 100

        // // 引用类型
        // let c = { age: 20 };
        // let d = c;
        // d.age = 21;
        // console.log(c.age); // 21 而不是20了

        // 常见值类型
        let a; // undefined
        const s = 'abc'; // string
        const n = 100;  // number
        const b = true; // boolean
        const s2 = Symbol('s');// es6中的symbol

        // 以下都可以正常识别
        console.log(typeof a);
        console.log(typeof s);
        console.log(typeof b);
        console.log(typeof s2);

        // 常见引用类型
        const obj = { x: 100 } // 对象类型
        const arr = ['a', 'b', 'c'] // 数组类型
        const n1 = null // 特殊引用类型，指针指向为空地址
        function fn() { } // 特殊引用类型，但不用于存储数据，所以没有“拷贝、复制函数”这一说


        console.log(typeof console.log); // function
        // 以下不能正确识别，只能识别出是引用类型
        console.log(typeof obj); // 'object'
        console.log(typeof arr); // 'object'
        console.log(typeof n1); // 'object'
    </script>
</body>

</html>